package com.hero.power.service.impl;

import cn.hutool.core.util.StrUtil;
import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper;
import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
import com.hero.power.entity.Site;
import com.hero.power.mapper.SiteMapper;
import com.hero.power.service.ISiteService;
import org.springframework.stereotype.Service;

@Service
public class SiteServiceImpl extends ServiceImpl<SiteMapper, Site> implements ISiteService {


    /**
     * 查询站点列表
     * @param pageNo 页码
     * @param pageSize 一页多少条
     * @param userId 用户ID
     * @param role 权限
     * @param name 站点名称
     * @return
     */
    @Override
    public Page<Site> getSiteList(Integer pageNo, Integer pageSize, Integer userId, String role,String name) {
        Page page = new Page(pageNo, pageSize);
        LambdaQueryWrapper<Site> lambdaQueryWrapper = new LambdaQueryWrapper<>();
        // 不是管理员只能看自己下面的信息
        if (!role.equals("ROLE_ADMIN")) {
            lambdaQueryWrapper.eq(Site::getUserId, userId);
        }
        // 如果传了站点名称就进行条件拼接
        if(StrUtil.isNotBlank(name)){
            lambdaQueryWrapper.eq(Site::getSiteName,name);
        }
        lambdaQueryWrapper.orderByDesc(Site::getCreateTime);
        Page pages = this.page(page, lambdaQueryWrapper);
        return pages;
    }


}
